The present invention relates to management of a computer system and particularly to a method for setting and managing cache memories in a computer system on which a database management system (hereinafter referred to as “DBMS”) operates.
Most of application programs executed by a computer system use a database (hereinafter referred to as “DB”). Accordingly, performance of the DBMS which is a software used to manage the data processing to the DB and maintain the data of the DB is very important to the computer system. The performance of the DBMS is significantly affected by data access performance to the data stored on the storage subsystem. For this reason, in the computer system, improvement of data access performance to the storage subsystem leads to improvement in performance of the DBMS.
Generally, in order to improve access performance, the storage subsystem including a large number of hard disk drives has a semiconductor memory which is utilized as a cache memory. The storage subsystem holds a part of data originally stored in the hard disk drives in the cache memory. The read requests to the data in the cache memory will complete immediately because there is no need to read the data from the hard disk drives which takes a lot of time (hereinafter this state being referred to as “read hit state” or “hit state”). This improves the access performance to the storage subsystem largely. The quantity of data utilized by a computer system has been increasing recently. The capacity ratio of the cache memory relative to the quantity of data has been decreasing with the advance of increase in the quantity of data. Therefore, it is very important to utilize the finite capacity of the cache memory effectively in order to improve access performance to the storage subsystem.
With respect to improvement in efficiency in use of a cache memory in general, there is known the following background art.
A technique has been disclosed in U.S. Pat. No. 5,434,992. In the technique, a LRU (Least Recently Used) replacement algorithm is used in a storage subsystem. When a cache memory is partitioned and allocated in accordance with the kinds of data, information indicating positions of data in an LRU management list at the time of data hit is acquired. The number of hits when allocation of the cache memory in accordance with the kinds of data is changed is estimated on the basis of the information. Allocation of the cache memory in accordance with the kinds of data is controlled on the basis of the estimated value of the number of hits. In this specification, “number of hits” is defined as the number of accesses hit in the cache memory among accesses to a predetermined storage region in a suitably decided period. “Hit ratio” is defined as a value obtained by dividing the number of hits by the total number of accesses to the storage region in the same period.
A technique has been disclosed in “Oracle9i Database Daily Feature—Oracle9i Memory Management”. The technique concerns a memory included in a computer on which a DBMS is executed. In the technique, the DBMS predicts change in number of data input/output (hereinafter referred to as “I/O”) to/from a storage subsystem (that is, change in hit ratio of the memory) in the case where the capacity of a cache memory held in the memory is changed.
A technique has been disclosed in “My cache or yours? Making storage more exclusive” (USENIX Annual Technical Conference pp. 161-175, June 2002). In the technique, a storage subsystem does not use a cache memory at ordinary read access so that the storage subsystem stores only data designated by a computer in the cache memory.